
#Область ПрограммныйИнтерфейс

// Начать выполнение обещания.
// 
// Параметры:
//  Обещание - Обещание, Произвольный -
//  ОписаниеОповещенияОЗавершении -ОписаниеОповещения -Описание оповещения о завершении
//  ОписаниеОповещенияОбОшибке -ОписаниеОповещения, Неопределено -Описание оповещения о завершении
//@skip-check bsl-legacy-check-async-method
//@skip-check doc-comment-type
Асинх Процедура ЗадатьОповещениеДляОбещания(Обещание, ОписаниеОповещенияОЗавершении,
	ОписаниеОповещенияОбОшибке = Неопределено) Экспорт
	//@skip-check bsl-legacy-check-string-literal
	Если ТипЗнч(Обещание) = Тип("Обещание") Тогда
		Попытка
			Результат = Ждать Обещание;
		Исключение
			ИнформацияОбОшибке = ИнформацияОбОшибке();

			Если ОписаниеОповещенияОбОшибке = Неопределено Тогда
				ВыполнитьОбработкуОповещения(ОписаниеОповещенияОбОшибке, ИнформацияОбОшибке);
			Иначе
				ВыполнитьОбработкуОповещения(ОписаниеОповещенияОЗавершении, ИнформацияОбОшибке);
			КонецЕсли;
			Возврат;
		КонецПопытки;
	Иначе
		Результат = Обещание;
	КонецЕсли;

	ВыполнитьОбработкуОповещения(ОписаниеОповещенияОЗавершении, Результат);

КонецПроцедуры

#КонецОбласти

#Область СлужебныйПрограммныйИнтерфейс

// Код процедур и функций

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

// Код процедур и функций

#КонецОбласти
